#include<stdio.h>
#include<unistd.h>
#include<sys/wait.h>
#include<stdlib.h>
# define NUM 16
const char* myfile="./mycmd";
int main()
{
  pid_t id=fork();
  if(id==0)
  {
 //   char* _argv[NUM]={"ls","-a","-l",NULL};
  // char* _argv[NUM]={"mycmd","-a",NULL};
    printf("子进程开始运行,子进程pid:%d\n",getpid());
    sleep(3);
    execl("/usr/bin/ls","ls","-a","-l",NULL);//参数使用列表的方式执行ls -a -l命令
//     execv("/usr/bin/ls",_argv);//参数使用数组的方式执行ls -a -l命令
  // execlp(myfile,"mycmd","-b",NULL);//自动在环境变量中找命令
  //     execlp(myfile,"mycmd","-a",NULL);
//      execvp(myfile,_argv);
   //   execlp("java","java","hello",NULL);//在自己的程序里面又去调用java程序
    exit(1);
  }
  else{
    printf("父进程开始运行，父进程pid:%d\n",getpid());
    int status=0;
    pid_t res=waitpid(-1,&status,0);//阻塞等待
    if(res>0)
    {
      printf("wait success,exit code:%d\n",WEXITSTATUS(status));
    }
  }
  return 0;
}
